Herein, related art may be discussed to put the invention in context. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art.
Regardless of the amount of pre-release testing, computer software is rarely flawless when it is released. Security issues, compatibility issues, and other problems may be discovered post release. Accordingly, software developers can release patches to update the software. In the case of some operating systems, hundreds or thousands of patches may be available, so that users often rely on the operating system developer for recommendations regarding which patches to install.
While it might seem advantageous to simply install the latest version of all patches, there are many situations in which this is not done. New patches can introduce new problems, and may not be tested on some system configurations. Some “restrictive” users do not want to “disturb” their systems any more than necessary; such users tend to address only actual problems or important security issues. Other users may be may be reluctant to install patches that have not been extensively vetted in the field.
Accordingly, a solution provider typically takes into account both the configuration of the system being patched and the user's preferences regarding patching in general. When a particular problem or security issue is identified, the solution provider can determine the configuration of the user system and determine what patches address the problem or issue. The user preferences can help select among the solution patches.
When a large number of patches are involved, some patches require other patches be installed with them. When a patch is selected to address a user issue, the patch space has to be analyzed to determine its dependencies so they can be induded in the solution. This analysis can be quite complex and must often be repeated for users with multiple systems with different configurations. The present invention addresses the problem of having to perform intensive dependency analyses every time a patch solution is required. This and other problems addressed by the invention are apparent from the description below with reference to the following FIGURE.